In conventional data transfer systems, a multiplex sublayer has both a transmitting and a receiving function. The transmitting function combines information from various sources (e.g., upper layer signaling, voice service, data service instances, etc.) to form service data units (SDUs). The receiving function separates the information contained in the SDUs and directs the information to the correct entity (e.g., upper layer signaling, voice service, data service instances, etc.). Information bits are exchanged between a connected service or a logical channel and the multiplex sublayer in a unit called a data block. The multiplex sublayer multiplexes one or more data blocks into a multiplex sublayer data unit (MUXPDU), and combines one or more MUXPDUs into SDUs.
There are several types of conventional MUXPDUS. Each conventional MUXPDU normally has a unique structure and is used for a specific purpose. In general, each MUXPDU contains a header and a data block, where the header has a number of fields. Using software to process the data uses significant MIPS (millions of instructions per second). Additionally, software implementations can create serious processing problems, especially when the data rate is high. Such computing overhead is especially relevant for Reduced Instruction Set Computing (RISC) processors.
It would be desirable to implement a system for processing MUXPDU data in hardware.